1. Field of the Invention
The present invention relates to databases and, more particularly, to Network Copy Protection (NCP) of database programs.
2. Description of the Related Art
Databases are used to store data in a manner that facilitates subsequent use of the data. A database includes one or more files, each of which contain one or more records. A record holds information about a subject or item in its various fields.
To allow a user to more easily access and manage data stored in databases, database programs have recently been developed. Database programs, among other things, often provide a user interface which allows the user to conveniently interact with the database program. By interacting with the user interface, the user of the database can perform various operations on the data stored in the database. The interface provided by the database program is typically a Graphical User Interface which allows the user to conveniently interact with the database program and, in turn, with the database. The user may interact with the graphical user interface to, for example, view the data in various ways. The visual representations provided to the user can include, for example, a browse mode. The browse mode allows records to be viewed, changed, sorted, deleted, or added.
FIG. 1 is a representative screen depiction from a conventional database program, namely, FileMaker Pro 4.0 by FileMaker Pro, Inc. of Santa Clara, Calif. The screen depiction pertains to an asset management database having three records. A browse mode for the first record of the ASSET MANAGEMENT database is depicted. The browse mode is suitable for on-line or screen viewing of the records of the asset management database and allows the records to be viewed or deleted. The data in the fields of the record can be changed, sorted, deleted or added in the browse mode.
Accordingly, the database program provides the user with the ability to conveniently access data which is stored locally in the database. It should be noted that the database program may also provide the capability to access data that is stored in a remote location. For example, the database program can be connected to another database program over a computer network. In this situation, one database program can act as a “guest” and establish a connection to the other database program (“host” database program). Via its connection to the host database program, the guest database program can, in turn, provide the user with access to data stored remotely.
One important goal is providing Network Copy Protection (NCP) for database programs. This means that only licensed copies of database programs should be allowed to operate (e.g., connect to another database program and access data remotely). In other words, if only one software license has been issued for a database program, two copies of the same data program should not be able to connect to another database program to access data.
Typically, a unique installation code is assigned to each licensed copy of database programs. The user is required to enter the installation code when the database program is installed. After the database program has been correctly installed with the installation code, every time the database program is started (or connects to the computer network) a check can be made to verify the installation code is not already in use. Conventionally, the database program does not make this verification itself. Rather, a naming (or name binding) protocol is utilized to make the verification depending on platform and/or connection protocol used by the database program. For example, the AppleTalk name binding protocol is used in Macintosh environments and the Network Basic Input Output System (NetBios) naming protocol is used in Windows environments. Thus, to implement Network Copy Protection for database programs, conventionally, a specific naming protocol is used depending on the particular platform and/or the connection protocol that is used.
One problem with using specific name binding protocols to handle Network Copy Protection is that this approach fails to detect copies of the same database when different platforms and/or different connection protocols are used. For example, if one copy of the database program is operating in the Windows environment and another copy of the same database program is operating in the Macintosh environment, the conventional approach fails to detect that two instances of the same database program are operating. Similarly, this failure can occur when two copies of the same database program are using different communication protocols.
Another problem is that the name binding protocols used by the conventional data programs are becoming obsolete, as more widely accepted connection protocols are becoming more prevalent. One prevalent protocol that has gained wide acceptance is Transmission Control Protocol (TCP). As such, both the Windows and the Macintosh environments support TCP. Unfortunately, however, TCP does not provide a suitable naming protocol that can readily be used to implement Network Copy Protection for database programs. Moreover, it is highly desirable to provide Network Copy Protection that can function across various platforms and connection protocols.
In view of the foregoing, there is a need for improved Network Copy Protection for database programs.